Add multi-module support to Go "templates" #136
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The templates for testing, linting, and formatting Go code work from a list of packages of the Go module which is output
from a
go list
command. Previously, it was only possible to get the packages of the module in the root of the repository.Projects may contain multiple Go modules in subfolders of the repository. In order to support checks on these modules,
it's necessary to configure the commands to run from their path. This is passed to the task via the
GO_MODULE_PATH
environment variable. If this variable is not defined, the default root module path is used as default, preserving the
previous task behavior.
The workflows use a job matrix to allow easy configuration for any number of module paths and a dedicated parallel job
for each module.
Because it may not be desirable to combine the code coverage data for all modules, a Codecov flag value can be defined for each matrix job in the "Test Go" workflow. This workflow produces a two dimensional "operating system * module" job matrix, running the tests for each module using all operating systems.
Demo of "Check Go" template in action: https://github.com/arduino/arduino-cli/actions/runs/1123382544
Demo of "Test Go" template in action: https://github.com/per1234/arduino-lint/actions/runs/1123365635